import axios from "axios";
import {removeToken} from "@/utils/cookies.js";
import {useRouter} from 'vue-router';

let router = useRouter();
// 封装一个axios实例
const http = axios.create({
    // 通用请求的地址前缀
    baseURL: 'http://localhost:5173',
    // 超时时间
    timeout: 100000
})

// 请求拦截器
http.interceptors.request.use(function (config) {
    return config;
}, function (error) {
    console.log(error)
    // 对请求错误做什么
    return Promise.reject(error);
})

// 添加响应拦截器
http.interceptors.response.use(
    response => {
        console.log(response)
        return response;
    },
    error => {
        if (error.response) {
            const status = error.response.status;
            if (status === 401) {
                // Token 过期，清除本地存储的 Token
                removeToken();
                // 跳转到登录页面
                router = useRouter();
                router.push('/login').then(() => {
                    // 导航成功完成
                    console.log('导航成功');
                }).catch((error) => {
                        // 导航被阻止或发生错误
                    console.error('导航出错:', error);
                    return Promise.reject(error);
                });
            }
        }
        return Promise.reject(error);
    }
)

export default http